GtkStackPage *visible_child;
- gboolean hhomogeneous;
- gboolean vhomogeneous;
+ gboolean homogeneous[2];
GtkStackTransitionType transition_type;
guint transition_duration;
{
GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
- if (!priv->vhomogeneous || !priv->hhomogeneous)
+ if (!priv->homogeneous[GTK_ORIENTATION_VERTICAL] || !priv->homogeneous[GTK_ORIENTATION_HORIZONTAL])
gtk_widget_queue_resize (GTK_WIDGET (stack));
else if (is_window_moving_transition (priv->active_transition_type))
gtk_widget_queue_allocate (GTK_WIDGET (stack));
transition_type = get_simple_transition_type (i_first, transition_type);
}
- if (priv->hhomogeneous && priv->vhomogeneous)
+ if (priv->homogeneous[GTK_ORIENTATION_HORIZONTAL] && priv->homogeneous[GTK_ORIENTATION_VERTICAL])
gtk_widget_queue_allocate (widget);
else
gtk_widget_queue_resize (widget);
gtk_widget_get_visible (child_info->widget))
set_visible_child (stack, child_info, priv->transition_type, priv->transition_duration);
- if (priv->hhomogeneous || priv->vhomogeneous || priv->visible_child == child_info)
+ if (priv->homogeneous[GTK_ORIENTATION_HORIZONTAL] || priv->homogeneous[GTK_ORIENTATION_VERTICAL] || priv->visible_child == child_info)
gtk_widget_queue_resize (GTK_WIDGET (stack));
}
g_object_unref (child_info);
if (!in_dispose &&
- (priv->hhomogeneous || priv->vhomogeneous) &&
+ (priv->homogeneous[GTK_ORIENTATION_HORIZONTAL] || priv->homogeneous[GTK_ORIENTATION_VERTICAL]) &&
was_visible)
gtk_widget_queue_resize (GTK_WIDGET (stack));
}
hhomogeneous = !!hhomogeneous;
- if (priv->hhomogeneous == hhomogeneous)
+ if (priv->homogeneous[GTK_ORIENTATION_HORIZONTAL] == hhomogeneous)
return;
- priv->hhomogeneous = hhomogeneous;
+ priv->homogeneous[GTK_ORIENTATION_HORIZONTAL] = hhomogeneous;
if (gtk_widget_get_visible (GTK_WIDGET(stack)))
gtk_widget_queue_resize (GTK_WIDGET (stack));
g_return_val_if_fail (GTK_IS_STACK (stack), FALSE);
- return priv->hhomogeneous;
+ return priv->homogeneous[GTK_ORIENTATION_HORIZONTAL];
}
/**
vhomogeneous = !!vhomogeneous;
- if (priv->vhomogeneous == vhomogeneous)
+ if (priv->homogeneous[GTK_ORIENTATION_VERTICAL] == vhomogeneous)
return;
- priv->vhomogeneous = vhomogeneous;
+ priv->homogeneous[GTK_ORIENTATION_VERTICAL] = vhomogeneous;
if (gtk_widget_get_visible (GTK_WIDGET(stack)))
gtk_widget_queue_resize (GTK_WIDGET (stack));
g_return_val_if_fail (GTK_IS_STACK (stack), FALSE);
- return priv->vhomogeneous;
+ return priv->homogeneous[GTK_ORIENTATION_VERTICAL];
}
/**
child_info = l->data;
child = child_info->widget;
- if (((orientation == GTK_ORIENTATION_VERTICAL && !priv->vhomogeneous) ||
- (orientation == GTK_ORIENTATION_HORIZONTAL && !priv->hhomogeneous)) &&
+ if (((orientation == GTK_ORIENTATION_VERTICAL && !priv->homogeneous[GTK_ORIENTATION_VERTICAL]) ||
+ (orientation == GTK_ORIENTATION_HORIZONTAL && !priv->homogeneous[GTK_ORIENTATION_HORIZONTAL])) &&
priv->visible_child != child_info)
continue;
if (priv->last_visible_child != NULL)
{
- if (orientation == GTK_ORIENTATION_VERTICAL && !priv->vhomogeneous)
+ if (orientation == GTK_ORIENTATION_VERTICAL && !priv->homogeneous[GTK_ORIENTATION_VERTICAL])
{
double t = priv->interpolate_size ? gtk_progress_tracker_get_ease_out_cubic (&priv->tracker, FALSE) : 1.0;
*minimum = LERP (*minimum, priv->last_visible_widget_height, t);
*natural = LERP (*natural, priv->last_visible_widget_height, t);
}
- if (orientation == GTK_ORIENTATION_HORIZONTAL && !priv->hhomogeneous)
+ if (orientation == GTK_ORIENTATION_HORIZONTAL && !priv->homogeneous[GTK_ORIENTATION_HORIZONTAL])
{
double t = priv->interpolate_size ? gtk_progress_tracker_get_ease_out_cubic (&priv->tracker, FALSE) : 1.0;
*minimum = LERP (*minimum, priv->last_visible_widget_width, t);
{
GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
- priv->vhomogeneous = TRUE;
- priv->hhomogeneous = TRUE;
+ priv->homogeneous[GTK_ORIENTATION_VERTICAL] = TRUE;
+ priv->homogeneous[GTK_ORIENTATION_HORIZONTAL] = TRUE;
priv->transition_duration = 200;
priv->transition_type = GTK_STACK_TRANSITION_TYPE_NONE;
}